/*
 * IpcTranceiverIface.hpp
 *
 *  Created on: Nov 2, 2013
 *      Author: vladimir
 */

#ifndef IPCTRANCEIVERIFACE_HPP_
#define IPCTRANCEIVERIFACE_HPP_

namespace mq {

class IpcTranceiverIface
{
public:
	IpcTranceiverIface() = default;
	virtual ~IpcTranceiverIface(){}

	IpcTranceiverIface( IpcTranceiverIface&& ) = default;
	IpcTranceiverIface& operator=( IpcTranceiverIface&& ) = default;

	IpcTranceiverIface( const IpcTranceiverIface& ) = delete;
	IpcTranceiverIface& operator=( const IpcTranceiverIface& ) = delete;


	virtual void SendMessage(
			const char * data,
			const unsigned int dataLength ) = 0;
	virtual unsigned int ReceiveMessage(
			char * buffer,
			const unsigned int bufferSize ) = 0;
};

} /* namespace mq */

#endif /* IPCTRANCEIVERIFACE_HPP_ */
